package bishiqiangxun;

import java.util.Scanner;

public class Test3 {
    //题目 ：day22装箱问题  其实就是01背包问题  考虑  放不放当前物品  放和部分哪个更大 取出最大的
    //动态规划
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别

        //输入
        int m = in.nextInt();
        int n = in.nextInt();
        int[] V = new int[m+1];  //这个表示该体积能容量的最大物品空间  dp
        int[] v1 = new int[n+1]; //这个表示 每个物品的体积

        for(int i = 1; i <=n; i++) {
            v1[i] = in.nextInt();
        }

        for(int i = 1; i<=n; i++) {
            for(int j = m; j >= v1[i]; j--) {
                //利用贪心 看是否放进去 当前的物品   比较一下当前的物品和不放该物品的空间哪个大
                V[j] = Math.max(V[j],V[j-v1[i]] + v1[i]);  //判断是否该放不该放  比原来大 就放
            }
        }
        System.out.println(m-V[m]);

    }
}
